import { get, download, post } from '@/service/request'

export function getPage(data: CustomerPageQuery) {
  return get<PageDataResponse<Data>>('lxdd/customerMixingStation/page', data)
}

export function exportPage(data: CustomerPageQuery) {
  return download({ url: 'lxdd/customerMixingStation/page', data: { ...data, export: true } })
}

// 添加/编辑
export function addOrUpdate(params: Form) {
  return post('lxdd/customerMixingStation/add', params)
}

// 获取搅拌站数据 authFilter 是否权限过滤，不传默认过滤权限
export function getMixingStationList(params?: { authFilter: boolean }) {
  return get<MixingStationData[]>('lxdd/mixingStation/mixingStations.html', params)
}

// 获取客户列表
export function getCustomerList(searchKey: string) {
  return get<CustomerListData[]>('lxdd/customer/list', { searchKey })
}

export interface CustomerPageQuery extends PageQuery {
  customerName?: string
  customerCode?: string
  railStatus?: string
  customerStatus?: string
  mixingStationNumber?: string
  timeType?: 1 | 2 | 3
  startTime?: string
  endTime?: string
}

/** 列表对象 */
export interface Data {
  /** ID */
  id?: string
  /** 客户名称 */
  customerName?: string
  /** 客户编号 */
  customerCode?: string
  /** 项目名称 */
  projectName?: string
  /** 销售站点id */
  mixingStationId?: string
  /** 销售站点名称 */
  mixingStationName?: string
  /** 启用状态 */
  customerStatus?: 0 | 1
  /** 是否设置围栏[0-否, 1-是] */
  railStatus?: number
  /** 更新人 */
  updateBy?: string
  /** 更新时间 */
  updateTime?: Date
  /** 创建人 */
  createBy?: string
  /** 创建时间 */
  createTime?: Date
}

/** 搅拌站下拉列表对象 */
export interface MixingStationData {
  /** ID */
  id?: string
  /** 名称 */
  name?: string
  /** 编号 */
  number?: string
}

/** 关联组织下拉列表对象 */
export interface CustomerListData {
  /** ID */
  id?: string
  /** 名称 */
  name?: string
  /** 编号 */
  code?: string
}

export interface Form {
  /** ID */
  id?: string
  /** 客户名称 */
  customerName?: string
  /** 客户编号 */
  customerCode?: string
  /** 项目名称 */
  projectName?: string
  /** 销售站点编号 */
  mixingStationNumber?: string
  /** 启用状态 */
  customerStatus?: 0 | 1
}
